// 服务器全部接口返回的数据类型
export interface ResponseData {
  code: number,
  message: string,
  ok: boolean
}

// SPU数据的ts类型
export interface SpuData {
  category3Id: string | number, //三级分类id
  id?: number,
  spuName: string, //SPU名称
  tmId: number | string, //SPU品牌id
  description: string, //SPU描述
  spuImageList: null | SpuImg[], //SPU图片列表 //联合类型：SpuImg[]，null或数组里面放置图片对象SpuImg
  spuSaleAttrList: null | SaleAttr[], //SPU销售属性列表 //SaleAttr[] 销售属性数组对象
}
// 包含全部SPU数据的数组类型
export type Records = SpuData[]
// 获取全部SPU接口返回数据的ts类型
export interface HasSpuResponseData extends ResponseData {
  data: {
    records: Records,
    total: number,
    size: number,
    current: number,
    searchCount: number,
    pages: number,
  }
}

// 所有SPU品牌数据的ts类型
export interface TradeMark {
  id: number,
  tmName: string,
  logoUrl: string
}
// SPU品牌接口返回数据的ts类型
export interface AllTradeMark extends ResponseData {
  data: TradeMark[]
}

// SPU商品图片的ts类型
export interface SpuImg {
  id?: number,
  spuId?: string,
  imgName?: string, //图片名称
  imgUrl?: string, //图片地址
  createTime?: string,
  updateTime?: string,
  name?: string,
  url?: string,
}
// SPU商品图片墙接口返回数据的ts类型
export interface SpuHasImg extends ResponseData {
  data: SpuImg[]
}

// SPU销售属性值对象的ts类型
export interface SaleAttrValue {
  id?: number,
  spuId?: number,
  isChecked?: string,
  baseSaleAttrId: number | string, //销售属性id
  saleAttrName?: string,
  saleAttrValueName: string, //销售属性值名字
  createTime?: string,
  updateTime?: string,
}
// SPU销售属性值数组的类型
export type spuSaleAttrValueList = SaleAttrValue[]
// 销售属性对象的ts类型
export interface SaleAttr {
  id?: number,
  spuId?: number,
  baseSaleAttrId: number | string, //销售属性id
  saleAttrName: string, //销售属性名字
  spuSaleAttrValueList: spuSaleAttrValueList, //销售属性值
  createTime?: string,
  updateTime?: string,
  flag?: boolean,
  saleAttrValue?:string,
}
// 销售属性接口返回数据的ts类型
export interface SaleAttrResponseData extends ResponseData {
  data: SaleAttr[]
}

// SPU销售属性下拉数据的ts类型
export interface HasSaleAttr {
  id: number,
  name: string
}
// SPU销售属性下拉数据接口返回数据的ts类型
export interface HasSaleAttrResponseData extends ResponseData {
  data: HasSaleAttr[]
}


export interface Attr{
  attrId:string|number, //平台属性id
  valueId:string|number, //属性值id
}
export interface saleAttr{
  saleAttrId:string|number, //销售属性id
  saleAttrValueId:string|number, //属性值id
}
// 新增sku的ts类型
export interface SkuData{
  category3Id:string|number, //三级分类id
  spuId:string|number, //已有spuid
  tmId:string|number, //spu品牌id
  skuName:string, //sku名字
  price:string|number, //sku价格
  weight:string|number, //sku重量
  skuDesc:string, //sku描述
  skuAttrValueList?:Attr[], //平台属性
  skuSaleAttrValueList?:saleAttr[], //销售属性
  skuDefaultImg:string, //sku图片地址
}
// 查看sku列表数据接口的ts类型
export interface SkuInfoData extends ResponseData{
  data:SkuData[]
}